Thông báo

Collapse
No announcement yet.

{help} Giúp em mạch đồng hồ thời gian thực 89S52 vs DS1307 với các bác ơi !

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #31
    làm mạch này lúc đó mình ko dùng DS1307,mình chỉ dùng ngắt của 8051 thôi bạn
    Vậy của bác khác of em rồi
    mạch loại của bạn dùng có tính toán thế nào thì mỗi ngày nó cũng sẽ chạy sai vài giây.
    Vấn đề chủ thớt chỉ là thời gian mô phỏng chạy ko khớp với thì gian thực, đó chỉ là đặt trưng của mô phỏng thôi vì thời gian của nó là nó chạy theo đặt tính mạch đang mô phỏng, bạn phải so sánh với time line của proteus mới chính xác.
    Chắc phải chấp nhận thui bác ạ

    Comment


    • #32
      thế bạn hãy thử so sánh time line của proteus với thời gian thực thử xem có khớp vs nhau ko nhé. còn việc bạn nói tính toán thế nào cũng sai thí sai lầm rồi nhé,mình tính như vậy đấy,nhưng mà h nó vẫn chạy ok đó bạn. Nếu bạn cứ dựa vào cái time line của proteus thì bạn thử nạp cái code đó vào vdk khi làm mạch thật đi thử xem nó có chạy đúng ko. Nếu đúng thì tôi chịu j cũng chịu đó
      Nguyên văn bởi chung1608 Xem bài viết
      mạch loại của bạn dùng có tính toán thế nào thì mỗi ngày nó cũng sẽ chạy sai vài giây.
      Vấn đề chủ thớt chỉ là thời gian mô phỏng chạy ko khớp với thì gian thực, đó chỉ là đặt trưng của mô phỏng thôi vì thời gian của nó là nó chạy theo đặt tính mạch đang mô phỏng, bạn phải so sánh với time line của proteus mới chính xác.

      Comment


      • #33
        Nguyên văn bởi note Xem bài viết
        thế bạn hãy thử so sánh time line của proteus với thời gian thực thử xem có khớp vs nhau ko nhé. còn việc bạn nói tính toán thế nào cũng sai thí sai lầm rồi nhé,mình tính như vậy đấy,nhưng mà h nó vẫn chạy ok đó bạn. Nếu bạn cứ dựa vào cái time line của proteus thì bạn thử nạp cái code đó vào vdk khi làm mạch thật đi thử xem nó có chạy đúng ko. Nếu đúng thì tôi chịu j cũng chịu đó
        quá trình ngắt thực tế diễn ra thì ko thể tính đc lúc nào nó ngắt. Quy trình lấy mẫu kiểm tra ngắt nằm ở xung thứ 9 trong chu kì máy 12 xung, giả sử trước đó 1 MC timer đã tràn, lệnh tiếp theo là lệnh MUL mất 4MC, ở MC thứ nhất VDK phát hiện timer tràn nhưng ko thể ngắt ngay lập tức vì phải làm hoàn tất lệnh MUL, sau 3MC tiếp theo ngắt mới đc phục vụ thì bạn sử lý 3MC trễ này thế nào.

        Comment


        • #34
          ok. 1 lệnh MUL mất 4us,chưa kể nó có thể ngắt ở những lệnh khác như MOV,CJNE mất 1 hoặc 2,3 us tùy vào từng lệnh cụ thể,chính ví thế mình mới so sánh thời gian lâu ra để trừ đi những sai sồ trong những trường hợp này. nhưng vẫn còn sơm(trễ) vài giây trong 1 hoặc 2 tháng (cái này có thể bỏ qua vì ko có j là tuyệt đối hết,ngay cả đồng hồ kim của SEiKO kia mà còn sai 1s trong 10 năm nũa là.Thế còn bạn,bạn đã từng làm 1 cái mạch thật = lập trình ngắt 8051 chưa hay chỉ dựa vào cái time line mô phỏng trên proteus rồi quả quyết rằng nó sẽ chính xác khi làm mạch thật

          Comment


          • #35
            ok. 1 lệnh MUL mất 4us,chưa kể nó có thể ngắt ở những lệnh khác như MOV,CJNE mất 1 hoặc 2,3 us tùy vào từng lệnh cụ thể,chính ví thế mình mới so sánh thời gian lâu ra để trừ đi những sai sồ trong những trường hợp này. nhưng vẫn còn sơm(trễ) vài giây trong 1 hoặc 2 tháng (cái này có thể bỏ qua vì ko có j là tuyệt đối hết,ngay cả đồng hồ kim của SEiKO kia mà còn sai 1s trong 10 năm nũa là.Thế còn bạn,bạn đã từng làm 1 cái mạch thật = lập trình ngắt 8051 chưa hay chỉ dựa vào cái time line mô phỏng trên proteus rồi quả quyết rằng nó sẽ chính xác khi làm mạch thật
            Nguyên văn bởi chung1608 Xem bài viết
            quá trình ngắt thực tế diễn ra thì ko thể tính đc lúc nào nó ngắt. Quy trình lấy mẫu kiểm tra ngắt nằm ở xung thứ 9 trong chu kì máy 12 xung, giả sử trước đó 1 MC timer đã tràn, lệnh tiếp theo là lệnh MUL mất 4MC, ở MC thứ nhất VDK phát hiện timer tràn nhưng ko thể ngắt ngay lập tức vì phải làm hoàn tất lệnh MUL, sau 3MC tiếp theo ngắt mới đc phục vụ thì bạn sử lý 3MC trễ này thế nào.

            Comment


            • #36
              Nguyên văn bởi note Xem bài viết
              ok. 1 lệnh MUL mất 4us,chưa kể nó có thể ngắt ở những lệnh khác như MOV,CJNE mất 1 hoặc 2,3 us tùy vào từng lệnh cụ thể,chính ví thế mình mới so sánh thời gian lâu ra để trừ đi những sai sồ trong những trường hợp này. nhưng vẫn còn sơm(trễ) vài giây trong 1 hoặc 2 tháng (cái này có thể bỏ qua vì ko có j là tuyệt đối hết,ngay cả đồng hồ kim của SEiKO kia mà còn sai 1s trong 10 năm nũa là.Thế còn bạn,bạn đã từng làm 1 cái mạch thật = lập trình ngắt 8051 chưa hay chỉ dựa vào cái time line mô phỏng trên proteus rồi quả quyết rằng nó sẽ chính xác khi làm mạch thật
              time line đó đc tính theo thời gian của chu kì máy làm từng lệnh đấy bạn, nếu bạn cho mô phỏng đúng 1 ngày rồi dùng thơi gian của mạch bạn làm trừ đi time line sẽ ra sai số chính xác của 1 ngày và mạch thật sai số trong 1 ngày chỉ còn là của thạch anh
              time line đó chạy

              Comment


              • #37
                thứ 1: ruốc cuộc cũng phải chờ canh với thời gian mô phỏng rồi nạp lại giá trị,vậy chắc chắn cũng có sai số như mình thôi
                thứ 2: bạn dựa vào cách nào mà tính được sai số trong khi chắc chắn có sai số từ %CPU load,trong khi giá trị này cũng ko cố định mà liên tục thay đổi theo thời gian(lúc thì CPU load 20%,21,22,.....)???
                proteus cũng chỉ là 1 phần mềm mô phỏng thôi,nó chỉ đúng tương đối 1 phần nào đó về phần mềm thôi,còn phần cứng thì khỏi phải nói,nó sai khá là nhìu (cũng do nó ko hỗ trợ phần này thôi),có 1 số đoạn code học theo lí thuyết+ chạy proteus thì đúng nhưng khi làm thật mới bik nó vất vả thế nào đó bạn!
                Nguyên văn bởi chung1608 Xem bài viết
                time line đó đc tính theo thời gian của chu kì máy làm từng lệnh đấy bạn, nếu bạn cho mô phỏng đúng 1 ngày rồi dùng thơi gian của mạch bạn làm trừ đi time line sẽ ra sai số chính xác của 1 ngày và mạch thật sai số trong 1 ngày chỉ còn là của thạch anh
                time line đó chạy

                Comment


                • #38
                  Nguyên văn bởi note Xem bài viết
                  thứ 1: ruốc cuộc cũng phải chờ canh với thời gian mô phỏng rồi nạp lại giá trị,vậy chắc chắn cũng có sai số như mình thôi
                  thứ 2: bạn dựa vào cách nào mà tính được sai số trong khi chắc chắn có sai số từ %CPU load,trong khi giá trị này cũng ko cố định mà liên tục thay đổi theo thời gian(lúc thì CPU load 20%,21,22,.....)???
                  proteus cũng chỉ là 1 phần mềm mô phỏng thôi,nó chỉ đúng tương đối 1 phần nào đó về phần mềm thôi,còn phần cứng thì khỏi phải nói,nó sai khá là nhìu (cũng do nó ko hỗ trợ phần này thôi),có 1 số đoạn code học theo lí thuyết+ chạy proteus thì đúng nhưng khi làm thật mới bik nó vất vả thế nào đó bạn!
                  bạn ko hiểu rõ về cách proteus mô phỏng thì có nói với bạn cũng như nước đổ lá môn.

                  Comment


                  • #39
                    thế ak,bạn ko bik j để nói nữa nên mới nói vậy ak, trình độ chỉ có bấy nhiêu đó thôi ư,thế mà cũng bày đặt lên mặt với tôi ak. cỡ người như bạn thì có nhìu!
                    Nguyên văn bởi chung1608 Xem bài viết
                    bạn ko hiểu rõ về cách proteus mô phỏng thì có nói với bạn cũng như nước đổ lá môn.

                    Comment


                    • #40
                      ai cho mình hỏi tí nhé ; tại sao mach đôngh hồ số dung 89c51 thường có sai số . và cách khắc phục . mọi ng rep nhanh giúp mình nha . help me ...

                      Comment

                      Về tác giả

                      Collapse

                      kakarotsan12 Tìm hiểu thêm về kakarotsan12

                      Bài viết mới nhất

                      Collapse

                      Đang tải...
                      X